package com.dbh.com.dbh.time;

import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.ChronoUnit;
import java.util.Locale;

/**
 * 本地时间类表示一个没有指定时区的时间，例如，10 p.m.或者17：30:15，
 * 下面的例子会用上面的例子定义的时区创建两个本地时间对象。
 * 然后我们会比较两个时间，并计算它们之间的小时和分钟的不同。
 *
 *  @author dongbanghui
 *  @date 2018/08/14
 */
public class LocalTimeDemo {

    public static void main(String[] args) {

        ZoneId zone1 = ZoneId.of("Europe/Berlin");
        ZoneId zone2 = ZoneId.of("Brazil/East");

        LocalTime now1 = LocalTime.now(zone1);
        LocalTime now2 = LocalTime.now(zone2);

        System.out.println(now1.isBefore(now2));  // false

        long hoursBetween = ChronoUnit.HOURS.between(now1, now2);
        long minutesBetween = ChronoUnit.MINUTES.between(now1, now2);

        System.out.println(hoursBetween);       // -4
        System.out.println(minutesBetween);     // -299

        LocalTime late = LocalTime.of(23, 59, 59);
        System.out.println(late);       // 23:59:59


        DateTimeFormatter germanFormatter =
                DateTimeFormatter
                        .ofLocalizedTime(FormatStyle.SHORT)
                        .withLocale(Locale.GERMAN);
        LocalTime leetTime = LocalTime.parse("13:37", germanFormatter);
        System.out.println(leetTime);   // 13:37



    }
}
